草庐IT

Android SurfaceView Canvas 用线程绘制

全部标签

java - 固定线程池中的线程阻塞

我有两个疑惑:关于Java中的固定线程池。假设我创建了一个有5个线程的固定线程池,并且所有线程当前都在执行,还假设队列中有4个任务在等待完成这些线程的执行。如果所有当前正在执行的任务都被阻塞,会发生什么?是否有办法从该队列中取出任务并将阻塞的任务放入队列中?我们如何知道任务是被阻止还是正在执行? 最佳答案 Ifallcurrentlyexecutingtasksgotblockedwhatwillhappen?Whetherthereisawaytotaketaskfromthatqueueandputtheblockedtaski

java:中断线程是绝对必要的

我是Java的新手,正在使用某人提供的代码。在那里,在代码的末尾,如果线程尚未完成,它们将中断该线程。我正在测量代码的时间。问题是Java代码首先发出所有线程,然后在最后中断。有必要打断吗?我们不能等到所有线程真正完成吗?或者可能只是跳过中断(这些线程正在使用processexec命令运行进程,它们无论如何都会完成)。这是相关代码。首先是单个线程的代码:StringcommandString="./script.scr";process=Runtime.getRuntime().exec(commandString);BufferedReaderbufferedReader=newBu

java - 绘图/绘制 Wav 文件 java

我是java的新手...我想从wav文件中绘制频率/时间图或样本图像。开始我正在努力使用AudioInputStream从Wav文件中获取原始数据数组也引用自ReadingwavfileinJava.我还尝试了引用http://www.labbookpages.co.uk/audio/javaWavFiles.html的WavFile类但是在测试时,我无法找到正确的包来满足“WavFile”-“找不到符号”错误。提供的importjava.io.*;因为那个样本不满足这个...重申一下,我希望获得Wav文件的数组格式的原始数据。我会喜欢任何这样的小例子,因为我从例子中学习更容易!谢谢你

java - Libgdx SpriteBatch 是否绘制到 StencilBuffer?

我在OpenGLES1.0中使用libgdx,我想知道SpriteBatch是否可以写入/绘制到模板缓冲区。我一直在尝试写入它,但我根本没有得到任何结果,我没有使用模板缓冲区的经验,但我已经阅读了很多,所以如果我在接下来的任何事情中有错,请纠正我。基本上我想做的是用SpriteBatch将纹理绘制到模板缓冲区,这样当我绘制其他东西时(禁用模板缓冲区)它只会在模板缓冲区等于1的区域上绘制。这是我想要的结果:如果我在模板缓冲区中绘制星形纹理,然后在颜色缓冲区中绘制红色纹理,我希望红色纹理忽略模板缓冲区中星形所在的像素。到目前为止,这是我的代码:batch.begin();Gdx.gl10.

java - JMS 队列上多线程消息处理的最佳实践

我目前正在将JMS支持添加到类似应用程序服务器的框架中。JMS将由HornetQ(独立代理,服务器类路径上的hornetqjar)实现,但既没有JBoss,也没有spring,也没有其他任何可以提供MDB的东西。下一步是将消息监听器添加到xa队列,以允许并行处理传入消息。有些消息会启动长时间运行的任务,因此基本思想是从onMessage方法生成工作线程。在漫长的互联网旅程中,我遇到了thisdiscussion,其中一位参与者提到,他不会这样做,而是使用一个额外的内部队列来完成任务:然后(单线程)消息监听器将简单地从入站队列中获取消息并为内部队列创建新消息,其中在该内部队列的另一端,一

java - OS X Java 每个进程的最大线程数

运行这段代码for(inti=0;i结果Exceptioninthread"main"java.lang.OutOfMemoryError:unabletocreatenewnativethreadatjava.lang.Thread.start0(NativeMethod)atjava.lang.Thread.start(Thread.java:658)atcom.codeoverdrive.burnbearburn.Main.main(Main.java:10)2024个运行线程之后。使用JVM堆和堆栈大小没有帮助。sysctlkern.num_threads返回kern.num_

java - 列出 ThreadPoolTask​​Executor 中所有正在运行/排队的线程

我在Spring中使用ThreadPoolTask​​Executor来安排我的任务。有没有办法获取该任务执行器/池的每个正在运行和排队的线程的列表或其他信息? 最佳答案 也许不是很优雅,但通过这种方式我可以从已知的执行器中获取所有线程(使用startsWith()前缀)。SetthreadSet=Thread.getAllStackTraces().keySet();for(Threadthread:threadSet){if(thread.getName().startsWith("MyExecutor")){System.ou

java - 如何阻止一个线程修改另一个线程正在使用的数组?

我有一个java程序,它基本上是一个游戏。它有一个名为'World'的类。“World”类有一个方法'levelChanger()'和另一个方法'makeColorArray()'。publicclassWorld{privateBufferedImagemap,map1,map2,map3;privateColor[][]colorArray;publicWorld(intscrWd,intscrHi){try{map1=ImageIO.read(newFile("map1.png"));map2=ImageIO.read(newFile("map2.png"));map3=Imag

java - 将数据从多个线程发送到单个线程

我正在编写一个连接到Arduino的Java套接字服务器,Arduino反过来发送和接收数据。如Java套接字文档所示,我已将服务器设置为为每个连接打开一个新线程。我的问题是,我如何才能将数据从套接字线程发送到我的主线程?套接字将不断打开,因此必须在线程运行时发送数据。有什么建议吗?更新:服务器的目标是向Arduino发送命令(即打开或关闭灯)并从传感器接收数据,因此我需要一种方法从连接到各个线程的传感器获取数据并将它们合并为一个。 最佳答案 在线程之间共享数据总是很棘手。没有“正确”的答案,这完全取决于您的用例。我想您不是在寻找最

java - 多个线程同时使用同一个 JDBC 连接

我试图更好地理解如果多个线程尝试使用相同的JDBC连接同时执行不同的sql查询会发生什么。结果在功能上是否正确?性能影响是什么?线程A是否必须等待线程B完全完成其查询?或者线程A是否能够在线程B发送查询后立即发送查询,之后数据库将并行执行两个查询?我看到ApacheDBCP使用同步协议(protocol)来确保从池中获得的连接从池中删除,并使其不可用,直到它们关闭。这似乎比它需要的更不方便。我正在考虑通过创建打开连接的静态列表并以循环方式分发它们来构建我自己的“池”。我不介意偶尔的性能下降,每次使用后不必关闭连接的便利性似乎非常吸引人。我这样做有什么缺点吗?